You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello @benedikt-buchert,
What do you mean by the rate limit of the API ?
I have used the AEP API quite intensively and I have never reached the limit. Have you faced any specific limit for some operations ?
defsend_deletion_requests(chunks):
foridx, chunkinenumerate(chunks):
# Format identities for deletion requestidentities= [
{"namespace": {"code": row["namespaceCode"]}, "id": row["value"]}
for_, rowinchunk.iterrows()
]
# Create deletion requestjob_name=f"deletion_job_chunk_{idx+1}"try:
response=myHygieneSandbox.createRecordDeleteRequest(
name=job_name, identities=identities
)
log.info(f"Successfully sent deletion request for chunk {idx+1}")
log.debug(response)
exceptExceptionase:
log.error(
f"{e} Failed to send deletion request for chunk {idx+1}",
exc_info=True,
)
defsplit_and_send_deletions(file_path, chunk_size=10000):
try:
# Read the original CSV file into a DataFramedf=pd.read_csv(file_path)
if"value"indf.columns:
df["value"] =df["value"].astype(str)
log.info(f"Read CSV file: {file_path}")
exceptExceptionase:
log.error(f"{e} Failed to read CSV file: {file_path}", exc_info=True)
return# Get the number of chunksnum_chunks=len(df) //chunk_size+ (1iflen(df) %chunk_size!=0else0)
chunks= []
# Split the DataFrame into chunksforiinrange(num_chunks):
# Get the start and end index for the current chunkstart_idx=i*chunk_sizeend_idx=start_idx+chunk_size# Get the chunkchunk=df.iloc[start_idx:end_idx]
chunks.append(chunk)
log.info(f"Prepared chunk {i+1} of {num_chunks}")
# Send deletion requests for each chunksend_deletion_requests(chunks)
I think the main issue is that I'm sending a bunch of requests quickly after each other.
Yeah, I think handling them in 100K chunk would have been better as it is the number of records supported for each Payload.
Overall, it is a complex topics as I am not aware if the issue is going to be the same for all endpoints, so it could be block.
I am actually thinking to move to httpx to provide capability for async call...
This makes it even more complex
Honestly not sure if I want/can tackle that natively, I will let it open if someone see it and can add more
Activity
pitchmuc commentedon Aug 14, 2025
Hello @benedikt-buchert,
What do you mean by the rate limit of the API ?
I have used the AEP API quite intensively and I have never reached the limit. Have you faced any specific limit for some operations ?
benedikt-buchert commentedon Aug 15, 2025
This is the script I executed>
I think the main issue is that I'm sending a bunch of requests quickly after each other.
https://developer.adobe.com/experience-platform-apis/references/data-hygiene/#operation/createWorkOrder
Seems to be related to this: https://experienceleague.adobe.com/en/docs/experience-platform/data-lifecycle/best-practices#manage-429-errors
Should have set the chunk size to 100.000... But still might have ran into the issue...
[-]feature: Respect Rate limit[/-][+]feature: handle 429 error code[/+]pitchmuc commentedon Sep 2, 2025
Yeah, I think handling them in 100K chunk would have been better as it is the number of records supported for each Payload.
Overall, it is a complex topics as I am not aware if the issue is going to be the same for all endpoints, so it could be block.
I am actually thinking to move to httpx to provide capability for async call...
This makes it even more complex
Honestly not sure if I want/can tackle that natively, I will let it open if someone see it and can add more